package com.marvels.approve.consum;

import com.marvels.approve.loan.dto.FundSourceDTO;
import com.marvels.approve.loan.dto.LoanAfterInfoDTO;
import com.marvels.approve.loan.dto.McfeLendingProcess;
import com.marvels.approve.loan.dto.McfeLendingProcessLog;
import com.marvels.approve.manager.dto.ApprovalProcessConditionDTO;
import com.marvels.approve.manager.dto.CollectAccountDTO;
import com.marvels.common.exception.MarvelsBusinessException;

import java.util.List;
import java.util.Map;

public interface ApproveConsumerFinancialApi {
	
	/**
	 * 资金源信息
	 * @param data
	 * @return
	 */
	public List<FundSourceDTO>  fundSourceInfo(FundSourceDTO fundDTO);
	
	/**
	 * 插入放款审核信息
	 * @param mcfeLendingProcess
	 * @return
	 */
	public int insertLoanAuditInfo(McfeLendingProcess mcfeLendingProcess);


	/**
	 * 根据loanId 状态查询放款审核信息
	 * @param loanId
	 * @param status
	 * @return
	 */
	public McfeLendingProcess selectByloanIdAndStatus(String loanId,String status);

	
	/**
	 * 插入放款审核日志信息
	 * @param mcfeLendingProcessLog
	 * @return
	 */
	public int insertLoanAuditLogInfo(McfeLendingProcessLog mcfeLendingProcessLog);
	
	
	
	
	public LoanAfterInfoDTO loanTrial(LoanAfterInfoDTO loanAfterInfoDTO);
	
	
	/**
	 * 获取逾期loanId列表
	 * @param dto
	 * @return
	 */
	public List<String> overdueLoanList(ApprovalProcessConditionDTO dto);
	
	
	/**
	 * 查询合同信息
	 * @param loanId
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public CollectAccountDTO selectAccountInfo(String loanId) throws MarvelsBusinessException;
	
	/**
	 * 根据loanId查询逾期信息
	 * @param loanIds
	 * @return
	 */
	public Map<String, String> selectAccountOverdueInfo(List<String> loanIds);
}